package com.foreknow.service.impl;

import com.foreknow.bean.Sys_User;
import com.foreknow.dao.impl.Sys_UserDaoImpl;
import com.foreknow.db.DBManager;
import com.foreknow.service.Sys_UserService;

import java.sql.Connection;
import java.sql.SQLException;

public class Sys_UserServiceImpl implements Sys_UserService {
    @Override
    public boolean addSys_User(Sys_User sys_user) throws SQLException {
        //连接数据库
        DBManager dbManager = DBManager.getInstance();
        //调用连接数据库的方法
        Connection conn = dbManager.getConnection();
        //创建dao层的对象
      Sys_UserDaoImpl sys_userDao = new Sys_UserDaoImpl();
        //调用AdminDaoImpl对象中的 public void setConnection(Connection connection)方法连接数据库
        sys_userDao.setConnection(conn);
        boolean isRight = false;
        try {
            //调用dao层的添加方法，因为抛出了SQLException异常，所以要处理它。
            isRight = sys_userDao.save(sys_user);
            //手动提交事物，添加到数据库中的数据才会真实在存在
            conn.commit();
        } catch (SQLException e) {
            try {
                //回滚事物，取消之前的操作
                conn.rollback();
            } catch (SQLException ex) {
                ex.printStackTrace();
            }
            e.printStackTrace();
        }
        return isRight;
    }




    @Override
    public boolean updateSys_User(Sys_User sys_user) throws SQLException {
        //连接数据库
        DBManager dbManager = DBManager.getInstance();
        //调用连接数据库的方法
        Connection conn = dbManager.getConnection();
        //创建dao层的对象
        Sys_UserDaoImpl sys_userDao = new Sys_UserDaoImpl();
        //调用AdminDaoImpl对象中的 public void setConnection(Connection connection)方法连接数据库
        sys_userDao.setConnection(conn);
        boolean isRight = false;
        try {
            //调用dao层的添加方法，因为抛出了SQLException异常，所以要处理它。
            isRight=sys_userDao.updateSys_User(sys_user);
            conn.commit();
        } catch (SQLException e) {
            try {
                //回滚事物，取消之前的操作
                conn.rollback();
            } catch (SQLException ex) {
                ex.printStackTrace();
            }
            e.printStackTrace();
        }


        return isRight;
    }

    @Override
    public Sys_User[] queryById(String id) {
        //连接数据库
        DBManager dbManager = DBManager.getInstance();
        //调用连接数据库的方法
        Connection conn = dbManager.getConnection();
        //创建dao层的对象
        Sys_UserDaoImpl sys_userDao = new Sys_UserDaoImpl();
        //调用AdminDaoImpl对象中的 public void setConnection(Connection connection)方法连接数据库
        sys_userDao.setConnection(conn);
        boolean isRight = false;
//        try {
//            //调用dao层的添加方法，因为抛出了SQLException异常，所以要处理它。
//            sys_userDao.queryById(id){
//                Sys_User sys_user=new Sys_User();
////                System.out.println(sys_user.getId(),sys_user.getAge(),sys_user.getAddr());
//            }
//
//            conn.commit();
//        } catch (SQLException e) {
//            try {
//                //回滚事物，取消之前的操作
//                conn.rollback();
//            } catch (SQLException ex) {
//                ex.printStackTrace();
//            }
//            e.printStackTrace();
//        }
//
//        return  Sys_User[0];
        return new Sys_User[0];
    }


    @Override
    public Sys_User[] getQuaryall() {
        //连接数据库
        DBManager dbManager = DBManager.getInstance();
        //调用连接数据库的方法
        Connection conn = dbManager.getConnection();
        //创建dao层的对象
        Sys_UserDaoImpl sys_userDao = new Sys_UserDaoImpl();
        //调用AdminDaoImpl对象中的 public void setConnection(Connection connection)方法连接数据库
        sys_userDao.setConnection(conn);
//        boolean isRight = false;
//        try {
//            //调用dao层的添加方法，因为抛出了SQLException异常，所以要处理它。
//            sys_userDao.getQuaryall(){
//                Sys_User sys_user=new Sys_User();
//                System.out.println(sys_user.getId(),sys_user.getAge(),sys_user.getAddr());
//            }
//
//            conn.commit();
//        } catch (SQLException e) {
//            try {
//                //回滚事物，取消之前的操作
//                conn.rollback();
//            } catch (SQLException ex) {
//                ex.printStackTrace();
//            }
//            e.printStackTrace();
//        }
//
     return new Sys_User[0];
    }

    @Override
    public boolean deletByid(String id) {
        //连接数据库
        DBManager dbManager = DBManager.getInstance();
        //调用连接数据库的方法
        Connection conn = dbManager.getConnection();
        //创建dao层的对象
        Sys_UserDaoImpl sys_userDao = new Sys_UserDaoImpl();
        //调用AdminDaoImpl对象中的 public void setConnection(Connection connection)方法连接数据库
        sys_userDao.setConnection(conn);
        boolean isRight = false;
        try {
            isRight = sys_userDao.deletByid(id);
            conn.commit();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
        return isRight;
    }

}
